code: function (dom, prev, next) {
        var sibling, tmpSibling, elementUtils = new ElementUtils(dom);
  
        // 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);
            }
  
            dom.remove(next);
  
            each(Tools.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.