remove deleted nodes from exports when generating inventory
diff --git a/reclass/core.py b/reclass/core.py
index c962c74..1495a4c 100644
--- a/reclass/core.py
+++ b/reclass/core.py
@@ -166,9 +166,13 @@
         original_exports = Parameters(self._storage.get_exports())
         exports = copy.deepcopy(original_exports)
         original_exports.render_simple()
+        nodes = { key for key in exports.as_dict()}
         entities = {}
         for n in self._storage.enumerate_nodes():
             entities[n] = self._nodeinfo(n, exports)
+            nodes.discard(n)
+        for n in nodes:
+            exports.delete_key(n)
         changed = self._update_exports(original_exports, exports)
         if changed:
             # use brute force: if the exports have changed rerun
diff --git a/reclass/datatypes/parameters.py b/reclass/datatypes/parameters.py
index f830187..c887dbf 100644
--- a/reclass/datatypes/parameters.py
+++ b/reclass/datatypes/parameters.py
@@ -73,6 +73,10 @@
     def __ne__(self, other):
         return not self.__eq__(other)
 
+    def delete_key(self, key):
+        self._base.pop(key, None)
+        self._unrendered.pop(key, None)
+
     def as_dict(self):
         return self._base.copy()
 
diff --git a/reclass/utils/dictpath.py b/reclass/utils/dictpath.py
index c5df56c..8ff037f 100644
--- a/reclass/utils/dictpath.py
+++ b/reclass/utils/dictpath.py
@@ -137,16 +137,20 @@
         del self._parts[0]
         return self
 
-    def exists_in(self, base):
-        container = base
+    def exists_in(self, container):
+        item = container
         for i in self._parts:
-            if isinstance(container, (dict, list)) and i in container:
-                if isinstance(container, dict):
-                    container = container[i]
-                elif isinstance(container, list):
-                    container = container[int(i)]
-            elif i == self._parts[-1]:
-                return True
+            if isinstance(item, (dict, list)):
+                if i in item:
+                    if isinstance(item, dict):
+                        item = item[i]
+                    elif isinstance(container, list):
+                        item = item[int(i)]
+                else:
+                    return False
             else:
-                return False
+                if item == self._parts[-1]:
+                    return True
+                else:
+                    return False
         return True