findNodeByInternalPath (internalPath) {
    if (!internalPath) {
      return undefined
    }

    let node = this
    for (let i = 0; i < internalPath.length && node; i++) {
      const childIndex = internalPath[i]
      node = node.childs[childIndex]
    }

    return node
  }
Find child node by an internal path: the indexes of the childs nodes
@param {Array<String>} internalPath
@return {Node | undefined} Returns the node if the path exists.
                           Returns undefined otherwise.