Parámetro de ruta opcional de Laravel en la mitad de la URL

No. Optional parameters need to go to the end of the route,
otherwise Router would not know how to match URLs to routes.
What you implemented already is the correct way of doing that:

get('things/entities', 'MyController@doSomething');
get('things/{id}/entities', 'MyController@doSomething');
Mohamad