This function is missing handling of the generic-param part of the ABNF.  It's good that it won't throw an exception, but for completeness they need to pulled out into the structure as ignoring them means we will effectively strip them on any messages we forward.