1. Fix the bug of breadth-first search
	- When should I set the flag to visited?
	The answer is the time of `PUSH`, NOT `pop`