Add best-first search and A* search