Change router so route can be a callback function #2

Continuation from https://github.com/angular/angular.js/pull/2834