protected function _extractParams(ServerRequest $request)
    {
        $params = $request->getAttribute('params');
        $params['?'] = $request->getQueryParams();
        $params['_method'] = $request->getMethod();
        $params['_host'] = $request->host();
        if (!isset($params['_ext'])) {
            $params['_ext'] = null;
        }

        $pass = isset($params['pass']) ? $params['pass'] : [];

        unset(
            $params['pass'],
            $params['paging'],
            $params['models'],
            $params['url'],
            $params['autoRender'],
            $params['bare'],
            $params['requested'],
            $params['return'],
            $params['_Token'],
            $params['_matchedRoute']
        );
        $params = array_merge($params, $pass);
        $params += $params['?'];

        $this->_normalizeParams($params);

        return $params;
    }