Ideally it should be independent of the router, but can be used to extend a router with or do something completely different. The name should also change in order to reflect these changes.
The following should be possible:
var MyRouter = Backbone.Router.extend(Backbone.CommandRouter).extend({
//custom implementation
});
But also
var MySomething = Backbone.CommandRouter.extend({
//custom implementation
});