1. A method of matching subscriptions to published documents in a content-router, comprising: receiving subscription information; receiving published documents; storing said subscription information and said published documents in memory; instructing a subscription matching accelerator of the locations in memory of said published documents; transferring portions of said stored published documents from said memory to said accelerator on an as-needed basis; providing said subscription information to said accelerator; and processing said portions in said accelerator to perform subscription matching in said subscription matching accelerator independently of other functions performed within the content-router, and wherein said accelerator performs said subscription matching for multi-level documents using a non-finite automaton containing normal and self-loop states, wherein said normal and self-loop states are written to an execution stack, wherein memory slots within said execution stack are associated with respective pointers, wherein said normal and self-loop states are organized as distinct groups within said execution stack, wherein each time a new start element event is received the current free pointer for both the normal and self-loop states is written to an execution stack recovery stack which maintains the normal and self-loop free pointers for each document level, wherein when end elements are received the head of the execution recovery stack is read and the free pointers normal and self-loop free pointers are reinitialized to the read values.