Wow, pretty much took all day, but I finally got it. There might be a way to improve, but this is what I got working and I won't be tweaking it myself till it's committed to git :)
<rule>
<from>^([/m])([a-z]*)/(en|it)/([a-z]*)(?!.)</from>
<to>/template.jsp?site=$2&lng=$3&pageToLoad=$4</to>
</rule>
<rule>
<from>m/([a-z]*)/(en|it)/([a-z]*)(?!.)</from>
<to>/m-template.jsp?site=$1&lng=$2&pageToLoad=$3</to>
</rule>
<outbound-rule>
<from>([^\r]*)/template\.jsp\?site=([a-z]*)&lng=(en|it)&pageToLoad=([a-z]*)</from>
<to>%{context-path}/$2/$3/$4</to>
</outbound-rule>
<outbound-rule>
<from>([^\r]*)/m-template\.jsp\?site=([a-z]*)&lng=(en|it)&pageToLoad=([a-z]*)</from>
<to>%{context-path}/m/$2/$3/$4</to>
</outbound-rule>
Hope this'll be helpful to others.
Cheers.