The given strings will be the ones
that can be matched. In that case, match will return the index
of the matched string in that collection.
Be aware that the procesing time is quite heavy during the
initialization. It's the pay-off to make it really lighter
matches. Don't use the string_pool for a one-time test, it's only
useful in the long run.
After initialization, you can safely discard or modify the
collection; it will not change the automaton.
headers_not_void: a_headers /= Void
headers_not_empty: a_headers.count > 0
each string contains a different word
headers_not_empty: -- each string is non-empty