Refactor var declarations
Allow passing extra args to function matchers
Tests for extra arg handling
Document extra args ability