code: function _stringsMatch(magicWord, givenMagicWord) {
    /* jshint maxcomplexity:8 */
    magicWord = `${magicWord}`.toLowerCase()
  
    // too long
    if (givenMagicWord.length > magicWord.length) {
      return _matchRankMap.noMatch
    }
  
    // equals
    if (magicWord === givenMagicWord) {
      return _matchRankMap.equals
    }
  
    // starts with
    if (magicWord.indexOf(givenMagicWord) === 0) {
      return _matchRankMap.startsWith
    }
  
    // word starts with
    if (magicWord.indexOf(` ${givenMagicWord}`) !== -1) {
      return _matchRankMap.wordStartsWith
    }
  
    // contains
    if (magicWord.indexOf(givenMagicWord) !== -1) {
      return _matchRankMap.contains
    } else if (givenMagicWord.length === 1) {
      // If the only character in the given magic word
      //   isn't even contained in the magic word, then
      //   it's definitely not a match.
      return _matchRankMap.noMatch
    }
  
    // acronym
    if (_getAcronym(magicWord).indexOf(givenMagicWord) !== -1) {
      return _matchRankMap.acronym
    }
  
    return _stringsByCharOrder(magicWord, givenMagicWord)
  }
docs: Gives a _matchRankMap score based on
  how well the two strings match.
  @param {string} magicWord
  @param {string} givenMagicWord
  @returns {number}
  @private