Bot Libre does not do any substitutions. You can enter "don't" in a pattern.
We do have synonyms that you can add from the bot's Training & Chat Logs page, which are similar.
Bot Libre also supports response list, and also importing AIML as response list. Response list are generally better than AIML as they are a fuzzy match, not an exact match like a pattern. If the user's question is similar enough to the response question it will be used.