code: function mergeSiblings(prev, next) {
          var sibling, tmpSibling, elementUtils = new ElementUtils(dom);
  
          function findElementSibling(node, siblingName) {
            for (sibling = node; sibling; sibling = sibling[siblingName]) {
              if (sibling.nodeType == 3 && sibling.nodeValue.length !== 0) {
                return node;
              }
  
              if (sibling.nodeType == 1 && !isBookmarkNode(sibling)) {
                return sibling;
              }
            }
  
            return node;
          }
  
          // Check if next/prev exists and that they are elements
          if (prev && next) {
            // If previous sibling is empty then jump over it
            prev = findElementSibling(prev, 'previousSibling');
            next = findElementSibling(next, 'nextSibling');
  
            // Compare next and previous nodes
            if (elementUtils.compare(prev, next)) {
              // Append nodes between
              for (sibling = prev.nextSibling; sibling && sibling != next;) {
                tmpSibling = sibling;
                sibling = sibling.nextSibling;
                prev.appendChild(tmpSibling);
              }
  
              // Remove next node
              dom.remove(next);
  
              // Move children into prev node
              each(grep(next.childNodes), function (node) {
                prev.appendChild(node);
              });
  
              return prev;
            }
          }
  
          return next;
        }
docs: Merges the next/previous sibling element if they match.
  
  @private
  @param {Node} prev Previous node to compare/merge.
  @param {Node} next Next node to compare/merge.
  @return {Node} Next node if we didn't merge and prev node if we did.