public function dispatch($call = null)
    {
        $command = $this->routes->get($this->arguments->getCommand(1), false);
        if ($this->routes->get($call, false)) {
            $command = $this->routes->get($call, false);
        }
        if ($command) {
            $handler = new ClassMethodHandler($command, $this->arguments);
            return $handler->call($this->arguments);
        }
        throw new CommandNotFoundException(sprintf('Command %s is not registered.', $call));
    }