conversion: Prevent adding duplicate conversions
diff --git a/src/commonMain/kotlin/dev/kdrag0n/colorkt/conversion/ConversionGraph.kt b/src/commonMain/kotlin/dev/kdrag0n/colorkt/conversion/ConversionGraph.kt
index bb457d1..60cd80b 100644
--- a/src/commonMain/kotlin/dev/kdrag0n/colorkt/conversion/ConversionGraph.kt
+++ b/src/commonMain/kotlin/dev/kdrag0n/colorkt/conversion/ConversionGraph.kt
@@ -21,7 +21,7 @@
  */
 public object ConversionGraph {
     // Adjacency list: [vertex] = edges
-    private val graph = mutableMapOf<ColorType, MutableList<ConversionEdge>>()
+    private val graph = mutableMapOf<ColorType, MutableSet<ConversionEdge>>()
     private val pathCache = HashMap<Pair<ColorType, ColorType>, List<ColorConverter<Color, Color>>>()
 
     init {
@@ -50,16 +50,10 @@
     ) {
         val node = ConversionEdge(from, to, converter)
 
-        if (from in graph) {
-            graph[from]!! += node
-        } else {
-            graph[from] = mutableListOf(node)
-        }
-        if (to in graph) {
-            graph[to]!! += node
-        } else {
-            graph[to] = mutableListOf(node)
-        }
+        graph[from]?.let { it += node }
+            ?: graph.put(from, hashSetOf(node))
+        graph[to]?.let { it += node }
+            ?: graph.put(to, hashSetOf(node))
     }
 
     private fun findPath(from: ColorType, to: ColorType): List<ColorConverter<Color, Color>>? {