CTCOfficeGUI.InfoPanel.GetBlockFailureStateString C# (CSharp) Method

GetBlockFailureStateString() private method

Gets the failure state string for the given track block
There are 8 different possible strings, so this chunk of code gets ugly
private GetBlockFailureStateString ( TrackBlock block ) : string>.KeyValuePair
block TrackBlock Track block
return string>.KeyValuePair
        private KeyValuePair<string, string> GetBlockFailureStateString(TrackBlock block)
        {
            KeyValuePair<string, string> pair;

            //Check all 8 possible states
            if (!block.Status.BrokenRail && !block.Status.CircuitFail && !block.Status.PowerFail)
            {
                pair = new KeyValuePair<string, string>("Failure State:", "none");
            }
            else if (!block.Status.BrokenRail && !block.Status.CircuitFail && block.Status.PowerFail)
            {
                pair = new KeyValuePair<string, string>("Failure State:", "Power Failure");
            }
            else if (!block.Status.BrokenRail && block.Status.CircuitFail && !block.Status.PowerFail)
            {
                pair = new KeyValuePair<string, string>("Failure State:", "Circuit Failure");
            }
            else if (!block.Status.BrokenRail && block.Status.CircuitFail && block.Status.PowerFail)
            {
                pair = new KeyValuePair<string, string>("Failure State:", "Circuit & Power Failure");
            }
            else if (block.Status.BrokenRail && !block.Status.CircuitFail && !block.Status.PowerFail)
            {
                pair = new KeyValuePair<string, string>("Failure State:", "Broken Rail");
            }
            else if (block.Status.BrokenRail && !block.Status.CircuitFail && block.Status.PowerFail)
            {
                pair = new KeyValuePair<string, string>("Failure State:", "Broken Rail & Power Failure");
            }
            else if (block.Status.BrokenRail && block.Status.CircuitFail && !block.Status.PowerFail)
            {
                pair = new KeyValuePair<string, string>("Failure State:", "Broken Rail & Circuit Failure");
            }
            else if (block.Status.BrokenRail && block.Status.CircuitFail && block.Status.PowerFail)
            {
                pair = new KeyValuePair<string, string>("Failure State:", "Broken Rail, Circuit, & Power Failure");
            }
            else
            {
                //Unreachable, but needed since pair is not nullable
                pair = new KeyValuePair<string, string>();
            }

            return pair;
        }