code: function(str, pos) {
      if (str.length == 0) {
        //blank string cannot be inserted
        return;
      }
  
      var T = this, k, child;
  
      if (pos === undefined) {
        pos = 0;
      }
      if (pos === str.length) {
        T.words++;
        return;
      }
      T.prefixes++;
      k = str[pos];
      if (T.children[k] === undefined) {
        //if node for this char doesn't exist, create one
        T.children[k] = new Trie();
      }
      child = T.children[k];
      child.insert(str, pos + 1);
    }
docs: /*
  Insert a word into the dictionary.
  Recursively traverse through the trie nodes, and create new node if does not already exist.
  
  @method insert
  @param {String} str Word to insert in the dictionary
  @param {Integer} pos Current index of the string to be inserted
  @return {Void}