Rewrote .merge() (faster and less obtuse now). Fixed #5610.