Implement new search algorithm
gate.utils.search -> gate.utils.match