Repository: dgilland/pydash

Issue:
merge_with: iteratee is lost when _merge_with is recursing.

```python
def merge_array(obj_val, src_val):
if isinstance(obj_val, list) and isinstance(src_val, list):
  return difference(obj_val + src_val)

merge_with({ 'd': { 'x': [2] } }, { 'd': { 'x': [5] } }, merge_array)
```

### expect

```
{ 'd': { 'x': [2, 5] } }
```

### actual

```
{ 'd': { 'x': [5] } }
```




Discussion:

Patch:
diff --git a/AUTHORS.rst b/AUTHORS.rst
index a1843ad..d167ec9 100644
--- a/AUTHORS.rst
+++ b/AUTHORS.rst
@@ -24,3 +24,4 @@ Contributors
 - Gonzalo Naveira, `gonzalonaveira@github <https://github.com/gonzalonaveira>`_
 - Wenbo Zhao, zhaowb@gmail.com, `zhaowb@github <https://github.com/zhaowb>`_
 - Mervyn Lee, `mervynlee94@github <https://github.com/mervynlee94>`_
+- Weineel Lee, `weineel@github <https://github.com/weineel>`_
diff --git a/src/pydash/objects.py b/src/pydash/objects.py
index f3bed2b..6949e8e 100644
--- a/src/pydash/objects.py
+++ b/src/pydash/objects.py
@@ -934,7 +934,7 @@ def _merge_with(obj, *sources, **kwargs):
             if _result is not None:
                 result = _result
             elif all_sequences or all_mappings:
-                result = _merge_with(obj_value, src_value, _setter=setter)
+                result = _merge_with(obj_value, src_value, iteratee=iteratee, _setter=setter)
             else:
                 result = src_value
 


Test patch:
diff --git a/tests/test_objects.py b/tests/test_objects.py
index 2217438..b218043 100644
--- a/tests/test_objects.py
+++ b/tests/test_objects.py
@@ -573,11 +573,11 @@ def test_merge_no_link_list():
     [
         (
             (
-                {"fruits": ["apple"], "vegetables": ["beet"]},
-                {"fruits": ["banana"], "vegetables": ["carrot"]},
-                lambda a, b: a + b if isinstance(a, list) else b,
+                {"fruits": ["apple"], "others": {"vegetables": ["beet"]}},
+                {"fruits": ["banana"], "others": {"vegetables": ["carrot"]}},
+                lambda a, b: a + b if isinstance(a, list) else None,
             ),
-            {"fruits": ["apple", "banana"], "vegetables": ["beet", "carrot"]},
+            {"fruits": ["apple", "banana"], "others": {"vegetables": ["beet", "carrot"]}},
         ),
     ],
 )