Dynamic routing via plugin with special characters
You'll need to update the regex to allow for additional characters.  For example, if you want to allow !, then this will work:

return array(
    'myroute/(?P&lt;myVariable&gt;[-\w\!]+)' =&gt; array('action' =&gt; 'myPlugin/myAction')
); 


Note that \w is essentially the same as writing [A-Za-z0-9_].