add match*, matchv*, match-let* optimizing variants. update tests