public final function filterUrlHandlers($handlerSet)
    {
        $filteredHandlers = [];

        foreach ($handlerSet as $handlers) {
            $filteredHandlers = array_merge($filteredHandlers, $handlers);
        }

        uasort($filteredHandlers, function (UrlHandler $a, UrlHandler $b) {
            $aPriority = $a->getPriority();
            $bPriority = $b->getPriority();

            if ($aPriority == $bPriority) {
                return ($a->getCreationOrder() > $b->getCreationOrder());
            }

            return ($aPriority <= $bPriority);
        });

        return $filteredHandlers;
    }