feature: preRouteHooks