fix ~define for non-list match patterns