we're doing simple text replacement ie
string firstName = "joe";
letterText.Replace("#firstname#, firstName);
we are not parsing the tokens and cannot manipulate them or have extra params embedded in them, to replace them we need to know exactly what they are ahead of time. Any default raplacement values would need to be stored somewhere else, possibly as new properties on the newsletter definition.
Best,
Joe