I would recommend removing logic from your routes file as it just complicates matters, instead group routes like so
Route::group(array('before' => 'detectLang'), function() {
Route::group(array('before' => 'guest'), function() {
Route::get('/', 'MainController@getView');
});
Route::group(array('before' => 'auth'), function() {
Route::get('/', 'UserController@getLogin');
});
});
This allows you to group everything in a nice manner and keeps the logic separated, which after all, is the purpose of route filters.