docs: function expand(source, opts) {
    opts = opts || {};
    var re = opts.re = opts.re || '.'
      , isre = (re instanceof RegExp)
      , o = {}, k, v, parts, i, p;
    for(k in source) {
      v = source[k];
      if(isre ? !re.test(k) : !~k.indexOf(re)) {
        o[k] = v;
      }else{
        parts = k.split(re);
        p = o;
        for(i = 0;i < parts.length;i++) {
          k = parts[i];
          if(i < parts.length - 1) {
            p[k] = p[k] || {};
            p = p[k];
          }else{
            p[k] = v;
          }
        }
      }
    }
    return o;
  }