public function accessBundleExposedRoutesAction($bundleName, $controllerName, $actionName, $parameters)
    {
        $bundle = $this->getBundleById($bundleName);

        $controller = (new BundleControllerResolver($this->getApplication()))->resolve($bundleName, $controllerName);

        if ($controller instanceof AbstractBundleController) {
            $controller->setBundle($bundle);
        }

        if (false === empty($parameters)) {
            $parameters = array_filter(explode('/', $parameters));
        }

        $response = call_user_func_array([$controller, $actionName], (array)$parameters);

        return is_object($response) && $response instanceof Response
            ? $response
            : $this->createJsonResponse($response)
        ;
    }