function runChangeHooks(routes, state, nextState, callback) {
	  var hooks = getChangeHooks(routes);
	  return runTransitionHooks(hooks.length, function (index, replace, next) {
	    hooks[index](state, nextState, replace, next);
	  }, callback);
	}
Runs all onChange hooks in the given array of routes in order
with onChange(prevState, nextState, replace, callback) and calls
callback(error, redirectInfo) when finished. The first hook
to use replace short-circuits the loop.

If a hook needs to run asynchronously, it may use the callback
function. However, doing so will cause the transition to pause,
which could lead to a non-responsive UI if the hook is slow.