public function testCustomPattern() { $r = new Router(); $r->setPattern('as', '/a+/'); $r->setPattern('bs', 'b+'); $r->get('/{as}/{bs}', function (Context $ctx) { return $ctx; }); $r->get('/{one:bs}/{two:as}', function (Context $ctx) { return $ctx; }); $d1 = $r->dispatch('GET', '/aaaa/bb'); $this->assertInstanceOf(Context::class, $d1); $this->assertEquals(['as' => 'aaaa', 'bs' => 'bb'], $d1->getPathParams()); $d2 = $r->dispatch('GET', '/bbbb/aaa'); $this->assertInstanceOf(Context::class, $d2); $this->assertEquals(['one' => 'bbbb', 'two' => 'aaa'], $d2->getPathParams()); }