public function isActive( $requestUri = null )
    {
        $uri = rawurldecode( preg_replace( '/[\\?#].*$/', '', (string) $this->getUri() ) );

        if ( empty( $uri ) || '/' !== $uri[0] )
        {
            return false;
        }

        if ( null === $requestUri )
        {
            if ( null === $this->requestUri )
            {
                $this->requestUri = $this->getServiceLocator()
                                         ->get( 'Request' )
                                         ->getRequestUri();

                $this->requestUri = preg_replace(
                    '/\\?.*$/', '',
                    $this->requestUri
                );
            }

            $requestUri = $this->requestUri;
        }
        else
        {
            $requestUri = preg_replace(
                '/[\\?#].*$/', '',
                (string) $requestUri
            );
        }

        $requestUri = rawurldecode( $requestUri );

        return $requestUri === $uri || (
            mb_strlen( $requestUri ) > mb_strlen( $uri ) &&
            mb_substr( $requestUri, 0, mb_strlen( $uri ) + 1 ) === ( $uri . '/' )
        );
    }