get (path) {
    if (!path) {
      return undefined
    }
    if (isString(path)) {
      const id = path
      return this.getRoot()[id]
    }
    if (arguments.length > 1) {
      path = Array.prototype.slice(arguments, 0)
    }
    if (!isArray(path)) {
      throw new Error('Illegal argument for PathObject.get()')
    }
    return get(this.getRoot(), path)
  }
Get value at path

    @return {object} The value stored for a given path

    @example

    obj.get(['b', 'b1'])
    => b1Val