protected function populateRoutes(RouteCollection $routes)
{
$route = $this->app->make(RouteHandlerFactory::class);
$routes->get('/all', 'index', $toDefaultController = $route->toController(Controller\IndexController::class));
$routes->get('/d/{id:\\d+(?:-[^/]*)?}[/{near:[^/]*}]', 'discussion', $route->toController(Controller\DiscussionController::class));
$routes->get('/u/{username}[/{filter:[^/]*}]', 'user', $route->toController(Controller\WebAppController::class));
$routes->get('/settings', 'settings', $route->toController(Controller\AuthorizedWebAppController::class));
$routes->get('/notifications', 'notifications', $route->toController(Controller\AuthorizedWebAppController::class));
$routes->get('/logout', 'logout', $route->toController(Controller\LogOutController::class));
$routes->post('/login', 'login', $route->toController(Controller\LogInController::class));
$routes->post('/register', 'register', $route->toController(Controller\RegisterController::class));
$routes->get('/confirm/{token}', 'confirmEmail', $route->toController(Controller\ConfirmEmailController::class));
$routes->get('/reset/{token}', 'resetPassword', $route->toController(Controller\ResetPasswordController::class));
$routes->post('/reset', 'savePassword', $route->toController(Controller\SavePasswordController::class));
$this->app->make('events')->fire(new ConfigureForumRoutes($routes, $route));
$defaultRoute = $this->app->make('flarum.settings')->get('default_route');
if (isset($routes->getRouteData()[0]['GET'][$defaultRoute])) {
$toDefaultController = $routes->getRouteData()[0]['GET'][$defaultRoute];
}
$routes->get('/', 'default', $toDefaultController);
}