                 break
             }
 
-            match = (left, right)
+            let pair = MergeablePair(left: left, right: right)
+            matching.append(pair)
             currentIndex += 1
         }
         
-        return match
+        return matching
     }
 
 

    /// Attempts to merge the Right array of Element Nodes (Paragraph Level) into the Left array of Nodes.
    ///
    func merge(left: [ElementNode], right: [ElementNode]) -> Bool {
        guard let (target, source) = findLowestMergeableNodes(left: left, right: right) else {
            return false
        }


    }


    /// Defines a pair of Nodes that can be merged
    ///
    typealias MergeablePair = (left: ElementNode, right: ElementNode)


    /// Finds the Deepest node that can be merged "Right to Left", and returns the Left / Right matching touple, if any.
    ///
    private func findMergeableNodes(left: [ElementNode], right: [ElementNode]) -> [MergeablePair] {
        var currentIndex = 0
        var matching = [MergeablePair]()

        while currentIndex < left.count && currentIndex < right.count {
            let left = left[currentIndex]
