code: function swappable(a, b) {
  	return DOMUtils.numNonDeletedChildNodes(a) === 1 &&
  		similar(a, DOMUtils.firstNonDeletedChild(a)) &&
  		mergable(DOMUtils.firstNonDeletedChild(a), b);
  }
docs: Can a and b be combined into a single node
  if we swap a and a.firstChild?
  
  For example: A='<b><i>x</i></b>' b='<i>y</i>' => '<i><b>x</b>y</i>'.