Fixing bug with rapidly switching routes

Going to a new route before the previous route change had finished caused an error to be thrown.
Fixed this by implementing a queuing system, that allows route changes to be queued.