J´y ai pensé, mais tu vas avoir des problemes la aussi.
Le premier est facil a voir:
si tu as "toto" et "to" dans cet ordre précis. Une fois que tu as lu "to", tu voudrais vérifier qu´il n´y a pas un autre "to" qui suit, ce qui semble rendre l´opération beaucoup plus difficile.
le deuxieme est plus tordu:
si ta premiere regle match toto et que ta deuxieme regle génère toto, alors tu ne veux pas réappliquer la premiere regle.
En fait, ce n´est pas récursif. Bref, cette fonction ne sert finalement qu´a eviter deux lignes de code au développeur. Je suis pas fan...