What is a business rules engine and how does it improve software agility?