public function run($arguments)
    {
        $outputFile = $this->getNamedArgument($arguments, ['--output-file', '-o']);
        $bootstrapFile = $this->getNamedArgument($arguments, ['--bootstrap', '-b']);
        if ($bootstrapFile) {
            include $bootstrapFile;
        } elseif (file_exists('phugBootstrap.php')) {
            include 'phugBootstrap.php';
        }
        list(, $action) = array_pad($arguments, 2, null);
        $arguments = array_slice($arguments, 2);
        $facade = $this->facade;
        $method = $this->convertToCamelCase($action);
        $customMethods = $this->getCustomMethods();

        if (!$action) {
            echo "You must provide a method.\n";
            $this->listAvailableMethods($customMethods);

            return false;
        }

        if (!in_array($method, iterator_to_array($this->getAvailableMethods($customMethods)))) {
            echo "The method $action is not available as CLI command in the $facade facade.\n";
            $this->listAvailableMethods($customMethods);

            return false;
        }

        return $this->execute($facade, $method, $arguments, $outputFile);
    }