/**
  * Forwards the request to another action and / or controller.
  *
  * @param string $actionName Name of the action to forward to
  * @param string $controllerName Unqualified object name of the controller to forward to. If not specified, the current controller is used.
  * @param string $packageKey Key of the package containing the controller to forward to. If not specified, the current package is assumed.
  * @param array $arguments Arguments to pass to the target action
  * @return void
  * @throws \F3\FLOW3\MVC\Exception\StopActionException
  * @author Robert Lemke <*****@*****.**>
  * @api
  */
 protected function forward($actionName, $controllerName = NULL, $packageKey = NULL, array $arguments = NULL)
 {
     $this->arguments->removeAll();
     $this->request->setDispatched(FALSE);
     $this->request->setControllerActionName($actionName);
     if ($controllerName !== NULL) {
         $this->request->setControllerName($controllerName);
     }
     if ($packageKey !== NULL) {
         $this->request->setControllerPackageKey($packageKey);
     }
     if ($arguments !== NULL) {
         $this->request->setArguments($arguments);
     }
     throw new \F3\FLOW3\MVC\Exception\StopActionException();
 }