def get_node(self, path):
        """
        Get the sub-trie at the given path. If it does not yet exist initialize
        it with the default value.

        Examples:
            >>> from featuretools.utils import Trie
            >>> t = Trie()
            >>> t.get_node([1, 2, 3]).value = '123'
            >>> t.get_node([1, 2, 4]).value = '124'
            >>> sub = t.get_node([1, 2])
            >>> sub.get_node([3]).value
            '123'
            >>> sub.get_node([4]).value
            '124'
        """
        if path:
            first = path[0]
            rest = path[1:]

            if first in self._children:
                sub_trie = self._children[first]
            else:
                sub_trie = Trie(
                    default=self._default,
                    path_constructor=self._path_constructor,
                )
                self._children[first] = sub_trie

            return sub_trie.get_node(rest)
        else:
            return self

        Get the sub-trie at the given path. If it does not yet exist initialize
        it with the default value.

        Examples:
            >>> from featuretools.utils import Trie
            >>> t = Trie()
            >>> t.get_node([1, 2, 3]).value = '123'
            >>> t.get_node([1, 2, 4]).value = '124'
            >>> sub = t.get_node([1, 2])
            >>> sub.get_node([3]).value
            '123'
            >>> sub.get_node([4]).value
            '124'
        
featuretools/utils/trie.py