<?php

class WP_Rewrite_CallbackRule implements WP_Rewrite_RuleInterface {
	protected $callback;
	public function __construct( $callback ) {
		$this->callback = $callback;
	}

	public function should_parse_query() {
		return true;
	}

	public function get_query_vars( $matches ) {
		return call_user_func( $this->callback, $matches );
	}

	public function get_verbose_page_match() {
		return false;
	}
}

add_rewrite_rule( '/foo/', new WP_Rewrite_CallbackRule( function ( $matches ) {
	return [ 'args' ];
}));
