Source

						public function testRouteParsingWithOptionalParam() {
		$route = new Route(array('template' => '/{:controller}/{:action}'));
		$request = new Request();
		$default = array('action' => 'index');

		$request->url = '/posts';
		$result = $route->parse($request);
		$this->assertEqual(array('controller' => 'posts') + $default, $result->params);

		$request->url = '/users';
		$result = $route->parse($request);
		$this->assertEqual(array('controller' => 'users') + $default, $result->params);

		$request->url = '/1';
		$result = $route->parse($request);
		$this->assertEqual(array('controller' => '1') + $default, $result->params);

		$request->url = '/users/index';
		$result = $route->parse($request);
		$this->assertEqual(array('controller' => 'users') + $default, $result->params);

		$request->url = '/users/view';
		$result = $route->parse($request);
		$expected = array('controller' => 'users', 'action' => 'view');
		$this->assertEqual($expected, $result->params);

		$request->url = '/users/view/5';
		$this->assertFalse($route->parse($request));

		$request->url = '/';
		$this->assertFalse($route->parse($request));
	}