public function testPatternDoesNotChangeWhenDefinitionOrderChanges() {
$collection1 = new RouteCollection();
$collection1
->add('a', new Route('/a...'));
$collection2 = new RouteCollection();
$collection2
->add('b', new Route('/b...'));
$collection3 = new RouteCollection();
$collection3
->add('c', new Route('/c...'));
$rootCollection_A = new RouteCollection();
$collection2
->addCollection($collection3, '/c');
$collection1
->addCollection($collection2, '/b');
$rootCollection_A
->addCollection($collection1, '/a');
// above should mean the same as below
$collection1 = new RouteCollection();
$collection1
->add('a', new Route('/a...'));
$collection2 = new RouteCollection();
$collection2
->add('b', new Route('/b...'));
$collection3 = new RouteCollection();
$collection3
->add('c', new Route('/c...'));
$rootCollection_B = new RouteCollection();
$collection1
->addCollection($collection2, '/b');
$collection2
->addCollection($collection3, '/c');
$rootCollection_B
->addCollection($collection1, '/a');
// test it now
$this
->assertEquals($rootCollection_A, $rootCollection_B);
}