Finish sign-in sign-out
add a custom matcher, a helper function; use include to DRY; Listing 8.34