The token used by enyo.Router to distinguish dynamic routes from static routes is unreliable.
As pointed out by Ryan Duffy this is likely caused by the global option. When fusing the global flag, the RegExp object remembers the last index: http://forums.enyojs.com/discussion/comment/9409#Comment_9409
Android (tested on 4.4, but might affect other versions too), using Android native browser.
I have tested two different solutions, both of which resolve the issue.
1: Remove the global flag, bypassing the lastIndex behavior entirely. This solution seems best to me, as I don't think the token regexp needs to be global.
2: Create a new RegExp object each time a route is added. This ensures the lastIndex is always 0 when the token.test(route.path) is called.
Oops, just noticed it's already fixed on master.
Already fixed in master