code: function(id, head, tail) {
          head = head || '';
          tail = tail || id;
  
          if (this.arch.hasNode(id)) return Q.resolve(id);
          if (head === id) return Q.reject(UTIL.format('Node "%s" not found', id));
  
          var parts = tail.split(PATH.dirSep),
              p = parts.shift();
          head = (head? [head, p] : [p]).join(PATH.dirSep);
          tail = parts.join(PATH.dirSep);
  
          var _this = this,
              magicHead = head + '*';
          if (!this.arch.hasNode(magicHead)) {
              return this.findNode(id, head, tail);
          }
  
          return this.process(magicHead).then(function() {
              return _this.findNode(id, head, tail);
          });
      }
docs: TODO: move node introspection logic to the node in arch