src/Dispatcher.php
public function dispatch(RequestInterface $request, ParameterMap $map = null)
    {
        $this->validateRoutePath($request);

        /**
         * Maching result of reqeust handler
         * @var array|bool
         */
        $requestMatching = $this->matcher->match($request);

        if ($map === null) {
            if ($requestMatching['handler'] instanceof MethodProc) {
                $requestMatching['handler']->execConstructor();
            }
            return $requestMatching['handler']->exec($requestMatching['urlNameMatching']);
        }

        if ($requestMatching['handler'] instanceof MethodProc) {
            $requestMatching['handler']->execConstructorWithParameterMap($map);
        }
        return $requestMatching['handler']->execWithParameterMap($map);
    }
public function dispatch(RequestInterface $request, ParameterMap $map = null)
    {
        $this->validateRoutePath($request);

        /**
         * Maching result of reqeust handler
         * @var array|bool
         */
        $requestMatching = $this->matcher->match($request);

        if ($map === null) {
            if ($requestMatching['handler'] instanceof MethodProc) {
                $requestMatching['handler']->execConstructor();
            }
            return $requestMatching['handler']->exec($requestMatching['urlNameMatching']);
        }

        if ($requestMatching['handler'] instanceof MethodProc) {
            $requestMatching['handler']->execConstructorWithParameterMap($map);
        }
        return $requestMatching['handler']->execWithParameterMap($map);
    }
If $map argument is null,
Dispatcher call a handler with a argument about array of url matching result.
otherwise,
Dispatcher call a handler with matcing arguments by ParameterMap

@param RequestInterface $request
@param ParameterMap $map
@return mixed return value of dispatch handler
@throws RoutePathNotFound