I don't think `return false` breaks `angular.forEach` (as it does in jQuery). Maybe the `if (route.controller === controller) {` should also check the value of `targetRoute`.