well, I found the solution. just to save others time.
Route::get('{param1}/{param2?}', array( ... ) )->where('param2', '.*');
this routes needs param1 as a required parameter, and param2 as an optional parameter which can contain any character includes /
.
so I can pass low_range-1000/high_range-5000/weight-2/height-4/red/
as param2.