private function formatAndInjectExposedAction($controller, $actions)
    {
        $controllerId = explode('\\', get_class($controller));
        $controllerId = str_replace('controller', '', strtolower(array_pop(($controllerId))));
        $this->exposedActions[$controllerId] = array('actions' => array());

        if ($controller instanceof BundleExposedControllerInterface) {
            $this->exposedActions[$controllerId]['label'] = $controller->getLabel();
            $this->exposedActions[$controllerId]['description'] = $controller->getDescription();
            array_unshift($actions, 'indexAction');
            $actions = array_unique($actions);
        }

        foreach ($actions as $action) {
            if (method_exists($controller, $action)) {
                $actionId = str_replace('action', '', strtolower($action));
                $uniqueName = $controllerId.'_'.$actionId;

                $this->exposedActionsCallbacks[$uniqueName] = array($controller, $action);
                $this->exposedActions[$controllerId]['actions'][] = $actionId;
            }
        }
    }