Add proper runloop usage to the match hook