Como detectar se um dispositivo tem suporte para mouse?

Atualmente, uso o seguinte teste (retirado do Modernizr) para detectar o suporte ao toque:

function is_touch_device() {
    var bool;
    if(('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) {
        bool = true;
    } else {
        injectElementWithStyles(['@media (',prefixes.join('touch-enabled),('),mod,')','{#modernizr{top:9px;position:absolute}}'].join(''), function(node) {
            bool = node.offsetTop === 9;
        });
    }
    return bool;
}

Mas alguns dispositivos são acionados por toque e mouse, por isso quero uma função separada para detectar se um dispositivo tem suporte para mouse. Qual é uma boa maneira de fazer essa verificação?

Em última análise, minha intenção é ser capaz de fazer isso:

if(is_touch_device())

if(has_mouse_support())

if(is_touch_device() && has_mouse_support())

questionAnswers(5)

yourAnswerToTheQuestion