Patterns can take wildcards, optional, and sets of words.
pattern "[what whats] (s) (the) firmware relearn (of) product"
pattern "[what whats] * firmware relearn ^ product ^"
You can also define multiple patterns that have the same template or function target.
(patterns in Self and AIML are the same)