> And how do you decide which is the basic word (which gets to be the key) and which are just synonyms?
i think in the "dumb" mode it will just replace the word multiple times without checking something like this, so:
"german german german" will become "nazi kraut nazi"
but in more sophisticated modes its possible to map some words (say, when they used/being replaced for the first time) and then reuse this map:
"german german german" will be: "nazi nazi nazi"
"german german nazi nazi" will be: "nazi nazi kraut kraut"
etc