public function boot(
        HookFactory $hook,
        Router $router,
        WP $wp,
        WP_Query $wp_query
    ) {
        // Load application defined routes.
        $this->load();

        // We going to run application router before
        // WordPress default template matching.
        $hook->filter('template_include', function () use ($router, $wp, $wp_query) {
            $router
                ->setNamespace($this->getNamespace())
                ->execute($wp, $wp_query);

            return false;
        })->dispatch();
    }