code: public static String slugify(final String text, final SlugifyParams params)
      {
          String result = unidecode(text);
          result = PUNCTUATION.matcher(result).replaceAll("-");
          result = ONLY_SLUG_CHARS.matcher(result).replaceAll("");
          result = CharMatcher.WHITESPACE.trimFrom(result);
          result = HYPEN_SPACE.matcher(result).replaceAll(params.separator);
          result = CharMatcher.INVISIBLE.removeFrom(result);
          return params.isToLowerCase ? result.toLowerCase() : result;
      }
docs: <p>
  Transforms a text into a representation suitable to be used in an URL.
  </p>
  
  <table border="0" cellspacing="0" cellpadding="3" width="100%">
  <tr>
  <th class="colFirst">Input</th>
  <th class="colLast">Output</th>
  </tr>
  <tr>
  <td>"J'étudie le français"</td>
  <td>"j-etudie-le-francais"</td>
  </tr>
  <tr>
  <td>"Lo siento, no hablo español"</td>
  <td>"lo-siento-no-hablo-espanol"</td>
  </tr>
  <tr>
  <td>"\nsome@mail.com\n"</td>
  <td>"some-mail-com"</td>
  </tr>
  </table>
  
  @param text
  The text to be slugified
  @param params
  The slugify parameterization object
  @return a slugified representation of text specified