Yes, I'm aware of using optional parameters, however that doesn't solve my problem.
I have the following 4 routes defined:
Route::get('/{parameter1}-{parameter2}-{parameter3}-{parameter4}-{page}.html', 'ListingController@show')->where('page','^[0-9]+');
Route::get('/{parameter1}-{parameter2}-{parameter3}-{page}.html', 'ListingController@show')->where('page','^[0-9]+');
Route::get('/{parameter1}-{parameter2}-{page}.html', 'ListingController@show')->where('page','^[0-9]+');
Route::get('/{parameter1}-{page}.html', 'ListingController@show')->where('page','^[0-9]+'
If I send those all to the same "Show" method:
public function show( $parameter1 = null, $parameter2 = null, $parameter3 = null, $parameter4 = null, page)
I get a "Too few arguments to function App\Http\Controllers\ListingController::show()" on all Routes except the first one.
You have to pass a parameter whether null or not, so it seems that I will need to stick with using 4 different methods, which is fine.