Filter-Id := 2

if !(request.[#] == 5) {
	debug_request
	test_fail
}

group {
	uint32 foo

	#
	#  We declared it, but it does *not* exist until we assign
	#  a value to it.
	#
	if foo {
		test_fail
	}

	foo := 1

	Filter-Id := foo

	if !(Filter-Id == foo) {
		test_fail
	}

	#
	#  Local variables are *not* in the request.
	#
	if !(request.[#] == 5) {
		test_fail
	}

	#
	#  Local variables can be expanded
	#
	Reply-Message := "This is %{foo}"
	if !(Reply-Message == "This is 1") {
		test_fail
	}

	request -= Reply-Message

} # leaving this scope automatically deletes foo

if !(request.[#] == 5) {
	debug_request
	test_fail
}

if !(Filter-Id == "1") {
	test_fail
}

success
