nl_tokens: TODO : Make promise agnostic
pl_tokens: function ConsumingMatcher ( matchers ) { return _ . create ( { } , { unmatchedMatchers : _ . clone ( matchers ) , matches : function ( actual ) { let matched = false ; _ . forEach ( this . unmatchedMatchers , ( matcher , index ) => { if ( matcher . matches ( <mask> ) ) { matched = true ; this . unmatchedMatchers . splice ( index , 1 ) ; return false ; } } , this ) ; return matched ; } } ) ; }