merge should allow `undefined` or `null` as parameters without blowing up