Laravel.io
<?php

/** ------------------------------------------
 *  Route model binding
 *  ------------------------------------------
 */
Route::model('training', 'Roche\Trainings\Models\Training');

/** ------------------------------------------
 *  Route constraint patterns
 *  ------------------------------------------
 */
Route::pattern('training', '[0-9]+');

/** ------------------------------------------
 *  Admin Routes
 *  ------------------------------------------
 */
Route::group(array('before' => 'auth'), function()
{

    # Trainings Management
    Route::get('trainings/{training}/show',     'Roche\Trainings\Controllers\Admin\AdminTrainingsController@getShow');
    Route::get('trainings/{training}/edit',     'Roche\Trainings\Controllers\Admin\AdminTrainingsController@getEdit');
    Route::post('trainings/{training}/edit',    'Roche\Trainings\Controllers\Admin\AdminTrainingsController@postEdit');
    Route::get('trainings/{training}/delete',   'Roche\Trainings\Controllers\Admin\AdminTrainingsController@getDelete');
    Route::post('trainings/{training}/delete',  'Roche\Trainings\Controllers\Admin\AdminTrainingsController@postDelete');

    Route::controller('trainings',              'Roche\Trainings\Controllers\Admin\AdminTrainingsController');

});

# API v1
Route::controller('api/v1/trainings',           'Roche\Trainings\Controllers\API\V1\APITrainingsController');

# Custom 404 page
App::missing(function($exception)
{
    return Response::view('trainings::404', array(), 404);
});

Please note that all pasted data is publicly available.