My code is as follows:
var AppRouter = Backbone.Router.extend({ _data: null, _length: 0, _index: null, _todos: null, _subtodolist: null,
Your problem is the order of your routes. Routes are evaluated in order so the "*action" will ALWAYS match.
Try:
routes: { "category/:name": "hashcategory" "*action": "index", }