Added new matchUntilHalt for reactive sessions

* New halt method on sessions to halt them
* new matchUntilHalt to keep session alive till halt is called
* Abstracted out match to be more generic and reusable