docs: function find(key, target, opts) {
    opts = opts || {};
    var path = []
      , o = target, i, k, p
      , re = opts.re = opts.re || /\./
      , parts = key.split(re);
    for(i =0;i < parts.length;i++) {
      k = parts[i];
      p = o;
      if(opts.create && o[k] === undefined) o[k] = {};
      o = o[k];
      path.push(k);
      if(!o) break;
    }
    return {key: k, value: o, parent: p, path: path.join('.')};
  }