@IgorMinar its not necessarily a programming error. In my experience, I may use the redirect function to validate user has pre-qualifying conditions met to hit that area. If they don't, redirect them somewhere else. If they do, keep the course and continue on with the intended route. 

It does not currently get caught in an infinite loop since the url didn't change, it doesn't fire any change watchers to re-evaluate.