matching.js is recursive and rather terrible looking

let's test it!