docs: function acceptsParser(req){
    return {
      types: parser(req.headers['accept'] || false),
      languages: parser(req.headers['accept-language'] || false),
      encodings: parser(req.headers['accept-encoding'] || false)
    };
    function parser(accepts){
      if(!accepts){return [];}
      accepts = accepts || '';
      accepts = accepts.split(',');
      var parsed = [];
      for(var a=0,l=accepts.length;a<l;a++){
        var accept = accepts[a];
        var q = 100;
        if(accept && accept.length>0){
          accept = accept.split(';q=');
          if(accept.length>1){
            q = parseFloat(accept[1])*100;
          }
          accept = accept[0].trim();
          if(accept.length>0 && !isNaN(q)){
            parsed.push({value:accept.trim(),q:q});
          }
        }
      }
      parsed.sort(function(a, b) {
        return b.q-a.q;
      });
      return parsed;
    }
  }