in core/src/main/scala/org/jetbrains/sbtidea/structure/sbtImpl/ModuleKeyImpl.scala [17:28]
override def hashCode(): Int = id.organization.hashCode
// this is a crime against programming, such micro-optimisations are not worth the time spent
// debugging obscure bugs caused by misbehaving maps and sets
override def equals(o: scala.Any): Boolean = o match {
case other: ModuleKeyImpl =>
org.equals(other.org) &&
(name == other.name || name.matches(other.name)) &&
(revision == other.revision || revision.matches(other.revision)) &&
attributes == other.attributes
case _ => false
}