require pattern