if ($i + 1 > $count) {
        $i = 0;
    }
    $r = $bin->match($routes[$i]);
    if ($r->getName() == trim($routes[$i], '/')) {
        echo '.';
        $avg['bin'] += $bin->getCount();
    }
    $i++;
});
$bench->addTask('Trie', function () use($trie, $routes, $count, &$avg) {
    static $i = 0;
    $trie->setTree(unserialize(file_get_contents(__DIR__ . '/fixtures/cache.trie')));
    if ($i + 1 > $count) {
        $i = 0;
    }
    $r = $trie->match($routes[$i]);
    if ($r->getName() == trim($routes[$i], '/')) {
        echo '.';
        $avg['trie'] += $trie->getCount();
    }
    $i++;
});
$bench->execute(1000);
echo "\n";
echo $avg['seq'] / 1000 . "\n";
echo $avg['bin'] / 1000 . "\n";
echo $avg['trie'] / 1000 . "\n";
echo $bench->render();
echo "\n";
// file_put_contents(__DIR__ . '/cache.trie', serialize($trie->getTree()));