Fix the equals problem.
It seems even HashSet in Scala uses "equals" when "addEntry" to judge whether two signals should be equal, which is not what we expect. For now, two signals are equal only if all three important fields are equal, or their values are equal and one signal is named " ", a special name.